import axios from 'axios'
// import Vue from 'vue'
// 导入轻提示
import { Toast } from 'vant'

// 导入token
import { getToken } from '@/utils/token'

// 做环境适配
axios.defaults.baseURL = process.env.VUE_APP_URL

// 重配axios,实际工作中项目很大时可能部分接口是不一样的
const _fetch = axios.create({
  BaseURl: process.env.VUE_APP_URL
})
// 请求拦截
_fetch.interceptors.request.use(
  function (config) {
    console.log(config)
    if (config.needToken) {
      config.headers.authorization = `Bearer ${getToken()}`
    }
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)
// 响应拦截
_fetch.interceptors.response.use(
  function (res) {
    if (res.data.code === 200) {
      console.log('响应', res)
      return res
    } else {
      // 提示错误
      Toast.fail(res.data.message)
      console.log(15)
      //   中止.then
      return Promise.reject(new Error(res.data.message))
    }
  },
  function (error) {
    return Promise.reject(error)
  }
)

// 挂载在Vue原型上
// Vue.prototype.$axios = axios

export default _fetch
